# Presented By ZhaoEnxing
# time: 2021/10/24 20:54
# 某工厂要估计一批总数5000件的产品的废品率,于是随机抽出400件产品进行检测,发现有32件废品。
# 试给出该批产品的废品率的区间估计(置信度是90%）。
# 解:n=400，N=5 000，样本废品率P=32/400=8%。置信度1-a=90%，a=10%，a/2=5%。
# 由于np=400×8%=32>5，属于大样本场合，这时候，临界值可查标准正态分布表得到。
from scipy import stats
import numpy as np
# 已知条件
confidence = 0.90
pop_n = 5000
sample_n = 400
sample_reject = 32
sample_p = sample_reject/sample_n # 样本废品率为8%
# 抽样平均误差（不放回抽样）
sigma_reject = np.sqrt(sample_p*(1-sample_p)/sample_n)*np.sqrt((pop_n - sample_n)/(pop_n-1))

# 90%置信区间
CI_reject_rate = stats.norm.interval(confidence, loc = sample_p, scale = sigma_reject)

print('点估计值为',sample_p)
print('90%置信区间为',CI_reject_rate)